﻿Imports System

Imports Microsoft.VisualStudio.TestTools.UnitTesting

Imports Clases



'''<summary>
'''Se trata de una clase de prueba para ClienteTest y se pretende que
'''contenga todas las pruebas unitarias ClienteTest.
'''</summary>
<TestClass()> _
Public Class ClienteTest


    Private testContextInstance As TestContext

    '''<summary>
    '''Obtiene o establece el contexto de la prueba que proporciona
    '''la información y funcionalidad para la ejecución de pruebas actual.
    '''</summary>
    Public Property TestContext() As TestContext
        Get
            Return testContextInstance
        End Get
        Set(value As TestContext)
            testContextInstance = Value
        End Set
    End Property

#Region "Atributos de prueba adicionales"
    '
    'Puede utilizar los siguientes atributos adicionales mientras escribe sus pruebas:
    '
    'Use ClassInitialize para ejecutar código antes de ejecutar la primera prueba en la clase 
    '<ClassInitialize()>  _
    'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext)
    'End Sub
    '
    'Use ClassCleanup para ejecutar código después de haber ejecutado todas las pruebas en una clase
    '<ClassCleanup()>  _
    'Public Shared Sub MyClassCleanup()
    'End Sub
    '
    'Use TestInitialize para ejecutar código antes de ejecutar cada prueba
    '<TestInitialize()>  _
    'Public Sub MyTestInitialize()
    'End Sub
    '
    'Use TestCleanup para ejecutar código después de que se hayan ejecutado todas las pruebas
    '<TestCleanup()>  _
    'Public Sub MyTestCleanup()
    'End Sub
    '
#End Region


    '''<summary>
    '''Una prueba de Constructor Cliente
    '''</summary>
    <TestMethod()> _
    Public Sub ClienteConstructorTest()
        Dim nombre As String = "aa" ' TODO: Inicializar en un valor adecuado
        Dim contraseña As String = "12345678" ' TODO: Inicializar en un valor adecuado
        Dim email As String = "12345@1234" ' TODO: Inicializar en un valor adecuado
        Dim tarjeta As String = "1234567890123456" ' TODO: Inicializar en un valor adecuado
        Dim fechaCaducidad As String = "" ' TODO: Inicializar en un valor adecuado
        'La fecha de caducidad la tratamos como string, en gestionarPersona es donde controlamos que no este caducada
        Dim target As Cliente = New Cliente(nombre, contraseña, email, tarjeta, fechaCaducidad)
        Dim expectedNombre As String = target.Nombre
        Dim expetedEmail As String = target.Email
        Dim expectedTarjeta As String = target.TarjetaCredito
        Assert.AreEqual(nombre, expectedNombre)
        Assert.AreEqual(email, expetedEmail)
        Assert.AreEqual(tarjeta, expectedTarjeta)
        'Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")

    End Sub

    '''<summary>
    '''Una prueba de Email
    '''</summary>
    <TestMethod()> _
    Public Sub EmailTest()
        Dim target As Cliente = New Cliente("aa", "12345678", "12345@1234", "1234567890123456", "")
        Dim expected As String = "12345@1234"
        Dim actual As String
        target.Email = expected
        actual = target.Email
        Assert.AreEqual(expected, actual)
        'Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")
    End Sub

   

    '''<summary>
    '''Una prueba de TarjetaCredito
    '''</summary>
    <TestMethod()> _
    Public Sub TarjetaCreditoTest()
        Dim target As Cliente = New Cliente("aa", "12345678", "12345@1234", "1234567890123456", "")
        Dim expected As String = "1234567890123456" ' TODO: Inicializar en un valor adecuado
        Dim actual As String
        target.TarjetaCredito = expected
        actual = target.TarjetaCredito
        Assert.AreEqual(expected, actual)
        'Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")
    End Sub
End Class
